Funzioni di manipolazione delle stringhe
Il PHP, come abbiamo avuto esempio nella
prima lezione, include nel suo motore diverse funzioni predefinite per la
manipolazione delle stringhe, le quali, fortunatamente per noi programmatori,
sono sempre in crescita grazie al contributo fornito da tanti singoli
programmatori al sito ufficiale del PHP (www.php.net).
Esse sono state create appositamente per la semplificazione della scrittura del
codice per quanto riguarda gli argomenti più disparati che si possono trattare
all'interno di un database, quali ad es. la codificazione di una determinata
stringa, il calcolo della sua lunghezza prima di registrarla in un campo del
database ed altro ancora. Per renderci conto di come funziona il tutto e delle
potenzialità offerte da queste funzioni cominciamo a compilare il modulo
riprodotto in figura sotto.
Apriamo il Blocco Note (o Notepad) e scriviamo il seguente codice HTML:
<HTML>
<HEAD>
<TITLE>Modulo di input generico</TITLE>
</HEAD>
<BODY>
<FORM METHOD="post" ACTION="visualizza_input.php">
<P><strong>Campo di testo:</strong><br>
<TEXTAREA NAME="testo" COLS=45 ROWS=5 WRAP=virtual></TEXTAREA>
</p>
<P><strong>Funzioni di manipolazione delle stringhe:</strong><br>
<INPUT TYPE="radio" NAME="funzione" VALUE="md5" checked> md5<br>
<INPUT TYPE="radio" NAME="funzione" VALUE="strlen"> lunghezza della stringa<br>
<INPUT TYPE="radio" NAME="funzione" VALUE="strrev"> stringa al contrario<br>
<INPUT TYPE="radio" NAME="funzione" VALUE="strtoupper"> stringa in maiuscolo<br>
<INPUT TYPE="radio" NAME="funzione" VALUE="strtolower"> stringa in minuscolo<br>
<INPUT TYPE="radio" NAME="funzione" VALUE="ucwords"> stringa con le prime
lettere delle parole in maiuscolo</P>
<P><INPUT TYPE="submit" NAME="invio" VALUE="Effettua l'operazione"></P>
</FORM>
</BODY>
</HTML>
Come visto nella lezione precedente,
all'interno dei singoli moduli di tipo "radio" viene dichiarata una variabile
chiamata funzione, in quanto, come sapete da precedenti lezioni HTML, il
modulo di tipo radio permette la selezione di una sola opzione tra le multiple
scelte dichiarate e quindi la variabile che dovrà assumerne il valore sarà una
soltanto, e ad ognuno dei singoli moduli viene assegnata, come
valore della variabile, una funzione predefinita del PHP: come sapete, da
linguaggi di programmazione già studiati in precedenza, una funzione, specie se
predefinita, è una particolare porzione di programma, in questo caso già
contenuto nel PHP, che permette la trasformazione di particolari valori, passati
direttamente da variabile (le parentesi indicano che la funzione ha bisogno
della variabile da trasformare), in altri valori distinti.
La prima funzione,
denominata md5 e la cui sintassi è md5();, restituisce il valore
hash della stringa: il valore digitale non è altro che una codifica alfanumerica
della stringa stessa utilizzata perlopiù nel confronto esatto tra stringhe e,
nella fattispecie, nel controllo modulare delle password in genere.
La seconda funzione, chiamata strlen e la cui sintassi, come la
precedente funzione e come tutte le altre a seguire è strlen();,
restituisce la lunghezza della stringa, funzione utile per il controllo della
stessa prima della memorizzazione in un database o invio via posta elettronica;
la terza funzione, strrev();, ricorda un po' il metodo leonardiano
di criptare un testo (come molti di voi sanno Leonardo da Vinci aveva
l'abitudine, per rendere i suoi scritti segreti ed incomprensibili alla sua epoca,
di scrivere al contrario e da destra a sinistra i propri trattati) e in alcuni
casi è ancora un valido metodo per il criptaggio di determinate stringhe.
Le successive funzioni, strtoupper(); e strtolower();, sono
utilizzate principalmente per il controllo di stringhe in applicazioni
case-sensitive, cioè che distinguono le lettere maiuscole da quelle
minuscole, in quanto le stesse trasformano rispettivamente in caratteri
maiuscoli e minuscoli la stringa passata.
Infine l'ultima funzione da noi trattata, e denominata ucword();,
permette la trasformazione delle prime lettere di ciascuna parola che compone la
frase da minuscola, qualora lo fosse, in maiuscola.
Adesso passiamo alla codifica dello script
PHP che permetterà l'esecuzione delle singoli funzioni appena trattate. Malgrado
l'apparente complessità nell'impostare il modulo per la manipolazione delle
stringhe, lo script al contrario è di una semplicità estrema.
Basta aprire il
proprio Blocco Note e scrivere:
<?
$risultato = $funzione($testo);
?>
<HTML>
<HEAD>
<TITLE>Risultati di input generico</TITLE>
</HEAD>
<BODY>
<? echo "$risultato"; ?>
</BODY>
</HTML>
Come potete notare dalla prima istruzione
in PHP ad una variabile chiamata risultato è stata associata il valore della
funzione predefinita, contenuta appunto nella variabile funzione, la
quale a sua volta, per la sintassi della funzione vista precedentemente,
manipola la stringa contenuta nel modulo di tipo TEXTAREA la cui variabile che
lo contiene è chiamata testo.
Il resto è pienamente intuibile dalla codifica HTML già conosciuta, unito allo
script per visualizzare sullo schermo il risultato della manipolazione.
Naturalmente è permessa ogni personalizzazione dell'output grazie ai tag di
formattazione del testo dell'HTML stesso.